Many computer performance enhancement techniques are based on eliminating redundant computation. Memoization is a technique that may enhance computer program performance by decreasing computation by remembering the results of a previously executed function. A function is a group of program instructions that performs a specific task, by accepting input values, called arguments, and producing a result. A pure function is a function that always produces the same result given the same input arguments, regardless of program state, and produces no side effects, e.g., by changing the value of a variable that is visible outside the function, by altering one of its input arguments, or by performing input/output. A common memoization method records the arguments and results of an execution of a pure function and records the results. Pure functions are identified, and if a pure function is called, the arguments that are input and the results produced by the pure function are recorded if the results have not been recorded. On subsequent invocations of the same pure function, a lookup is performed, and if the arguments used in the current invocation have been used before, the recorded result associated with those arguments is used instead of executing the pure function. This approach has been found to be effective, especially in Java® programs. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates.